package com.example.basics;

import java.util.Arrays;
import java.util.List;

/**
 * Java基础语法示例
 * 从.NET转Java的语法对比
 */
public class BasicSyntaxExamples {
    
    public static void main(String[] args) {
        BasicSyntaxExamples examples = new BasicSyntaxExamples();
        
        System.out.println("=== Java基础语法示例 ===");
        
        // 变量声明示例
        examples.variableDeclarationExample();
        
        // 方法调用示例
        String fullName = examples.getFullName("张", "三");
        System.out.println("全名: " + fullName);
        
        // 条件语句示例
        examples.conditionalExample(25);
        
        // 循环示例
        examples.loopExample();
        
        // 数组示例
        examples.arrayExample();
    }
    
    /**
     * 变量声明示例
     * 对比C#的变量声明
     */
    public void variableDeclarationExample() {
        System.out.println("\n--- 变量声明示例 ---");
        
        // 基本数据类型
        String name = "张三";           // 对应C#的string
        int age = 25;                  // 对应C#的int
        double salary = 5000.50;       // 对应C#的double
        boolean isActive = true;       // 对应C#的bool
        char grade = 'A';              // 对应C#的char
        
        System.out.println("姓名: " + name);
        System.out.println("年龄: " + age);
        System.out.println("薪资: " + salary);
        System.out.println("是否激活: " + isActive);
        System.out.println("等级: " + grade);
    }
    
    /**
     * 方法定义示例
     * 对比C#的方法定义
     */
    public String getFullName(String firstName, String lastName) {
        return firstName + " " + lastName;
    }
    
    /**
     * 条件语句示例
     * 对比C#的if-else语句
     */
    public void conditionalExample(int age) {
        System.out.println("\n--- 条件语句示例 ---");
        
        if (age >= 18) {
            System.out.println("成年人");
        } else if (age >= 12) {
            System.out.println("青少年");
        } else {
            System.out.println("儿童");
        }
        
        // 三元运算符 (类似C#的?:)
        String status = age >= 18 ? "成年" : "未成年";
        System.out.println("状态: " + status);
    }
    
    /**
     * 循环示例
     * 对比C#的循环语句
     */
    public void loopExample() {
        System.out.println("\n--- 循环示例 ---");
        
        // for循环
        System.out.println("for循环:");
        for (int i = 0; i < 5; i++) {
            System.out.print(i + " ");
        }
        System.out.println();
        
        // while循环
        System.out.println("while循环:");
        int j = 0;
        while (j < 3) {
            System.out.print(j + " ");
            j++;
        }
        System.out.println();
        
        // do-while循环
        System.out.println("do-while循环:");
        int k = 0;
        do {
            System.out.print(k + " ");
            k++;
        } while (k < 3);
        System.out.println();
    }
    
    /**
     * 数组示例
     * 对比C#的数组
     */
    public void arrayExample() {
        System.out.println("\n--- 数组示例 ---");
        
        // 数组声明和初始化
        int[] numbers = {1, 2, 3, 4, 5};
        String[] names = {"张三", "李四", "王五"};
        
        // 遍历数组 (类似C#的foreach)
        System.out.println("数字数组:");
        for (int number : numbers) {
            System.out.print(number + " ");
        }
        System.out.println();
        
        System.out.println("姓名数组:");
        for (String name : names) {
            System.out.print(name + " ");
        }
        System.out.println();
        
        // 使用Arrays工具类
        System.out.println("排序后的数字:");
        Arrays.sort(numbers);
        for (int number : numbers) {
            System.out.print(number + " ");
        }
        System.out.println();
    }
} 